/**
 * 窗口中打开窗口的小demo
 */
var childWin = null;
var win1 = null;
// 展示window的UI
function showWindow() {
	// 调用button组件的on方法来设置监听函数
	var btn1 = new Ext.Button({
		text : ""
	});
	btn1.on("click", function() {
		var win = new Ext.tree.TreePanel({
			width : 300,
			height : 230,
			title : 'treeTest',
			root : new Ext.tree.AsyncTreeNode({
				nodeType : 'async',
				text : '根节点',
				draggable : true,
				children : [ {
					text : "子节点1",
					children : [ {
						text : "孙节点1",
						leaf : true
					} ]
				}, {
					text : "子节点2",
				} ]
			})
		})
		win.show();
	})
	var btn2 = new Ext.Button({
		text : "创建新窗口"
	});
	btn2.on("click", function() {
		if (!childWin) {
			console.log("new动作执行了");
			childWin = new Ext.Window({
				width : 300,
				height : 230,
				closeAction : "hide",
				modal : true
			})
		}
		childWin.show();
	})
	var win = new Ext.Window({
		width : 500,
		height : 400,
		maximizable : true,
		minimizable : true,
		// 最小功能需要自己编写代码完全隐藏功能
		minimize : function() {
			console.log("最小化");
			win.hide();
		},
		title : "My Ext1 Window",
		buttons : [ {
			text : "创建包含树的窗口",
			listeners : {
				click : function() {
					console.log("创建包含树的窗口");
					var tree = new Ext.tree.TreePanel({
						width : 300,
						height : 230,
						title : 'treeTest',
						root : new Ext.tree.AsyncTreeNode({
							nodeType : 'async',
							text : '根节点',
							draggable : true,
							children : [ {
								text : "子节点1",
								children : [ {
									text : "孙节点1",
									leaf : true
								} ]
							}, {
								text : "子节点2",
							} ]
						})
					})
					if (!win1) {
						console.log("new动作执行了");
						win1 = new Ext.Window({
							width : 400,
							height : 350,
							title : "简单Window",
							// modal属性代表关闭该窗口之前不允许操作其他
							modal : true,
							/*
							 * 创建一个窗口消耗资源比较多，原则是不要创建太多，没用的就close
							 * 点击关闭窗口时候的动作，默认值为:"close"，资源释放，想重用只能再new，
							 * "hide"只是隐藏没有释放资源，不过注意使用If判断，否则会造成New出很多hide窗口的情况
							 */
							closeAction : "hide",
							items : [ tree ]
						})

					}
					// 可以用add方法代替items
					// win1.add(tree);
					win1.show();
				}
			}
		}, btn2 ]
	});
	// 调用show方法
	win.show();
}

// 通过Ext.onReady来开始调用Ext组件
// onReady需要接收一个什么类型的参数：Function
// 如果直接showWindow(),可能页面没加载完成就不会执行
// 该函数中的showWindow不需要加括号，如果加括号则表示执行了showWindow，返回的值作为onReady函数的参数

// showWindow();
Ext.onReady(showWindow);